草庐IT

$TCP 连接

全部标签

postgresql - 无法使用 Golang Gorm 连接到 RDS Postgres

我在尝试连接到我的RDSPostgres端点时遇到此错误dialtcp172.xx.xx.x:5432:i/otimeoutpanic:runtimeerror:invalidmemoryaddressornilpointerdereference[signalSIGSEGV:segmentationviolationcode=0x1addr=0x98pc=0x1600d16]似乎连接到端点有问题.环境文件DB_HOST=dbname.asdasddsa.ap-southeast-1.rds.amazonaws.comDB_PORT=5432DB_USER=usernameDB_NAM

sql-server - Golang 连接到 SQL Server 错误 - "TLS Handshake failed: Cannot read handshake packet: EOF"

我编写了一个系统,可以自动在MicrosoftAzure上部署VM,在上面安装SqlServer,然后针对新安装的服务器执行.sql脚本以初始化环境。周五,这一切都按预期进行。今天,我遇到了这个错误。我的代码具有以下相关导入:import("database/sql"_"github.com/denisenkom/go-mssqldb")并使用以下代码在安装后实际连接到数据库(为简洁起见删除了错误处理)://variablesconnectionString:="sqlserver://MasterUser:MasterPassword@xx.xx.xx.xxx:1433"dbName

postgresql - docker + golang lib/pq "dial tcp 127.0.0.1:5432: connect: connection refused"

sql.Open()不会出错:ifdb,err=sql.Open("postgres",url);err!=nil{returnnil,fmt.Errorf("Postgresconnecterror:(%v)",err)}但是db.Ping()会报错:iferr=db.Ping();err!=nil{returnnil,fmt.Errorf("Postgrespingerror:(%v)",err)}这仅仅是因为lib/pq连接字符串无法从具有单独连接参数的docker容器内进行连接。例如:url:=fmt.Sprintf("user=%vpassword=%vhost=%vport

mysql - 仅在ECS时无法连接到Golang中的RDS mysql

我尝试在ECS中加载应用程序。在我本地的docker环境下吃午饭是没有问题的。但由于rds连接问题,无法访问ECS中的api服务器。我在api服务器中使用golang,在数据库中使用mysql。我在main.go中调用db.gofuncmain(){db:=db.NewDatabase(os.Getenv("MYSQL_USER"),os.Getenv("MYSQL_PASSWORD"),os.Getenv("MYSQL_HOST"))连接rds数据库出错funcNewDatabase(user,password,hoststring)*Database{db,err:=sql.Ope

performance - Go 中异步 TCP 服务器的正确结构是什么?

我有一个客户端发送大约50万个请求(消息)/分钟。每条消息大约为200字节到2KB。每条消息都将保存在数据库中(例如Couchbase)。根据核心、端口、连接和goroutines来构建GoTCP服务器以处理此负载的正确方法是什么? 最佳答案 正如JimB所提到的,TCP服务器应该不难建立并开始针对您的需求进行基准测试。一个简单的布局是等待传入的TCP连接,然后执行一个go例程来处理它。在那个goroutine中,你可以放置任何你想要的阻塞代码,在本例中是写入数据库。这是一个简单示例的链接:Simpleexample一旦你开始工作,

go - 如何在 Go 中使用位移运算符将两个 `uint8` 连接成一个 `uint16`?

我正在尝试用Go开发一个玩具CPU架构来学习和熟悉这门语言,这是我以前在C中做过的事情。然而,学习过程中有一个部分让我感到惊讶,那就是位操作。特别是,我正在努力将两个8位值连接成一个16位值。我已经翻译了我写的这段通用C代码:uint16_tconnect(uint8_ta,uint8_tb){return(uint16_t)a|(uint16_t)b进入这段Go代码:funcDereferenceWord(addruint32)uint16{returnuint16(memoryPointer[addr])|uint16(memoryPointer[addr+1]至少对我来说,代码似

http - Golang http传输中保活连接数达到MaxIdleConns会怎样

我在使用http.Transport设置http客户端时遇到了一些问题假设我们有MaxIdleConns=10,MaxIdleConnsPerHost=2,五个不同的主机,每个主机有两个保活连接,这意味着连接数达到MaxIdleConns。当需要一个目标主机可能是五台主机之一的新连接时,客户端会做什么?当需要新的不同主机连接时,客户端会做什么?顺便说一句,如果我有一个服务器使用http.ListenAndServe,如何配置它,比如什么时候关闭保持连接?如果有任何示例代码,我将不胜感激。 最佳答案 如果您使用默认的GoHTTP客户端

Golang 中的多线程套接字连接

背景我正在使用Golang创建一个聊天室服务器。每次客户端连接到服务器时,我都会将客户端函数作为一个新线程启动,这样每个客户端都会得到一个被监听的线程。我能够基于thistutorial创建一个简单的客户端服务器连接,但现在我正在尝试为多个客户端创建连接,以便他们可以向聊天室发送消息。代码解释关注thistutorial,看起来我可以使用gofunc()创建线程并等待通过包含channel()建立连接。我在调用用户函数之前将一个bool值传递到channel中,因为用户函数将永远运行并且我想建立其他客户端连接。每个客户端连接都将运行用户函数。问题我不知道如何将用户连接变量传递给我的其他

go - 如何连接忽略空字符串的结构的字符串字段?

我真的是Go的新手,所以需要一些建议。我有一个结构:typeEmployeestruct{NamestringDesignationstringDepartmentstringSalaryintEmailstring}我想将字符串字段连接成一种员工描述。所以,我可以说:toString(employee)并得到:JohnSmithManagerSalesjohn.smith@example.com我尝试获取每个字段,检查它们是否为空并将它们放入一个slice中并在最后加入它们employeeDescArr:=make([]string,0,4)ifstrings.TrimSpace(v

Go:使用 TCP 连接写入 header

我从这里用以下代码结构实现了一个TCP服务器:http://golang.org/pkg/net/#example_Listener我正在尝试从浏览器pingTCP服务器。TCP服务器能够写入我的浏览器。但是,它无法写入客户端header,因为它未使用HTTP协议(protocol)。如何保持TCP协议(protocol)和连接,但仍然能够写入浏览器的header? 最佳答案 HowdoIkeeptheTCPprotocolandconnectionsbutstillbeabletowritetothebrowser'sheader